{ "cells": [ { "cell_type": "markdown", "id": "3b69c16f-99f0-442b-acfb-2f5918b66dee", "metadata": { "tags": [] }, "source": [ "Connection length plots (Wendelstein 7-X)\n", "================================\n", "\n", "This example shows how to create connection-length plots for Wendelstein 7-X. First, we need to perform some setup to make sure W7-X data are available." ] }, { "cell_type": "code", "execution_count": 1, "id": "82127547-522d-4fe8-8bc4-3d904ffd7389", "metadata": { "tags": [] }, "outputs": [], "source": [ "import fusionsc as fsc\n", "from fusionsc.devices import w7x" ] }, { "cell_type": "markdown", "id": "290cdac2-5741-4c5e-b077-862f1fc476ec", "metadata": {}, "source": [ "Now we need to setup the geometry and magnetic field configuration." ] }, { "cell_type": "code", "execution_count": 2, "id": "d2da4e67-33c8-4cb5-9130-029d1a907a8c", "metadata": { "tags": [] }, "outputs": [], "source": [ "field = w7x.standard()\n", "geometry = w7x.op21Geometry()\n", "\n", "grid = w7x.defaultGrid()" ] }, { "cell_type": "markdown", "id": "8c34fbe4-4f4e-45e1-a54f-33b414ac4623", "metadata": {}, "source": [ "Now, we need to define the points on which we want to calculate the connection length" ] }, { "cell_type": "code", "execution_count": 3, "id": "0ff916e4-3132-45a5-9ae3-90635d1af877", "metadata": { "tags": [] }, "outputs": [], "source": [ "import numpy as np\n", "rRange = np.linspace(6.0, 6.5, 40)\n", "zRange = np.linspace(-0.3, -0.1, 40)\n", "\n", "rStart, zStart = np.meshgrid(rRange, zRange, indexing = 'ij')\n", "phi = np.radians(200.8)\n", "\n", "xStart = np.cos(phi) * rStart\n", "yStart = np.sin(phi) * rStart\n", "startPoints = [xStart, yStart, zStart]" ] }, { "cell_type": "markdown", "id": "35876c54-efec-4678-93ac-ecaf36e24763", "metadata": {}, "source": [ "Before running the calculation, I would like to show a little trick that is good for speedups. In the Poincare example, we passed the grids directly to the trace function, so that it computes fields and indexed geometries by itself. If we trace repeatedly, this is inefficient. So this time, we will ahead of time request the computation and reference its result." ] }, { "cell_type": "code", "execution_count": 4, "id": "712f1a28-0990-4a6e-a26e-fea56c858d9c", "metadata": { "tags": [] }, "outputs": [], "source": [ "field = field.compute(grid)\n", "geometry = geometry.index(w7x.defaultGeometryGrid())" ] }, { "cell_type": "markdown", "id": "86b8ff07-fd3f-4856-a15e-8937a66a322e", "metadata": {}, "source": [ "Now it's time to run our calculation. Since we already computed field and geometry, the grids are no longer required. For connection length plots, we simply limit the number of collisions to 1 and inspect the field line length. We use the error-based adaptive step size." ] }, { "cell_type": "code", "execution_count": 23, "id": "1e774b2b-e058-408c-8a68-d27cbeaedb72", "metadata": { "tags": [] }, "outputs": [], "source": [ "conLength = fsc.flt.connectionLength(\n", " startPoints, field, geometry,\n", " distanceLimit = 3e2,\n", " \n", " targetError = 1e-3, maxStepSize = 0.01\n", ")" ] }, { "cell_type": "code", "execution_count": 24, "id": "fef36b9d-c238-4ef5-87c2-f79d52483771", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(40, 40)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Shape is startsPoints.shape[1:]\n", "conLength.shape" ] }, { "cell_type": "code", "execution_count": 25, "id": "02522f64-449d-441b-8d81-4114b44fe6b1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(-0.5, 0.0)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA98AAAL7CAYAAADkuTYkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlHElEQVR4nO3de5zVdZ04/teZUQFhBhNFMFFYVHTMRcUxzAtE5gVT1E1ztS2kZdkNcn9fc9c0My+Z3fzubkZoiWm2kvUtQ0i8S3jNUbyQmlkCSwZyvxXXOZ/fH8RZEJgZZs5nzuczPJ8+Po/H58x5n/f7dc585uDrvN7n/S4kSZIEAAAAkJqqSgcAAAAAHZ3kGwAAAFIm+QYAAICUSb4BAAAgZZJvAAAASJnkGwAAAFIm+QYAAICUSb4BAAAgZZJvAAAASJnkGwAAAFKWm+T7/vvvj/PPPz/69u0bnTt3jp49e8aHPvSh+OY3vxkrV67sMGMCAADQ8RSSJEkqHURTVq9eHRdffHHcf//9O2zTp0+f+MlPfhKDBw/O7ZgAAAB0XJlOvhsbG+NjH/tYPPjggxERsd9++8Xo0aOjrq4uli5dGpMmTYqnn346IiLe9773xdNPPx2HH3547sYEAACgY8t08n3bbbfFP//zP0dERF1dXTz++OOx3377bdXm8ssvj5tvvjkiIk466aSYMWNG7sYEAACgY8ts8t3Y2Bh9+vSJ+fPnR0TEiy++GMccc8x22x177LHx8ssvR0TEQw89FKeeempuxgQAAKDjy+yCazNmzCglwUOGDNluEhwRUV1dHZdeemnp9qRJk3I1JgAAAB1fZpPvadOmlc6HDx/eZNszzjhju4/Lw5gAAAB0fJlNvmfNmlU6r6+vb7Jtr169ok+fPhER8e6778aiRYtyMyYAAAAdX2aT7zfffLN03q9fv2bbb9lmy8dmfUwAAAA6vt0qHcCOLF++vHS+zz77NNu+R48e231sFsZct25drFu3rnS7WCzG0qVLo0ePHlEoFFoVKwAAUB5JksSqVati//33j6qqzNYnt2vt2rWxfv36SocRERF77LFHdO7cudJhZFZmk+/Vq1eXzlvyC+zSpUvpfNWqVZka86abborrrruuVTEBAADtY968eXHAAQdUOowWW7t2bfQ7qFssWNhY6VAiIqK2tjZ69+4dVVVVMXbs2Bg7dmylQ8qUzCbfHcmVV14Zl112Wen2ihUr4sADD4x58+ZFbW1tBSMDgGz47Gc/G//93/8dV1xxRVx11VVb3XfTTTfF1772tfjEJz4R3/ve9yoU4a7lS1/6Unz729+O0aNHx7e+9a2y93/ppZfGXXfdFZ///OfjmmuuKXv/sLNWrlwZffr0iZqamkqHslPWr18fCxY2xtwX+0ZtTWUr9itXFeOgQXPkOE3IbPLdrVu3WLZsWURs+kSnW7duTbZfs2ZN6by1fzRpjdmpU6fo1KnTNj+vra11YQJA/O+ip8cff/w2/za+9tprO7yPdPzud7+LiIhBgwal8ppvXiunvr7e75RMyetXQmtrqqK2prrSYdCMzH6hYa+99iqdL168uNn2S5Ys2e5jsz4mAOzq1q5dW0qwBw0atM39L7744g7vIx2bPww58sgjy953sVgsFTvS6B92RcVIoljx/5JKvwyZl9nke8CAAaXz2bNnN9t+yzZbPjbrYwLAru7VV1+NxsbG2HfffeP973//VvfNnz8//vSnP0VVVVUcddRRlQlwF7N06dJ45513IiLiAx/4QNn7nzt3brz55pux9957xyGHHFL2/gGyKrPJ95afhDY0NDTZ9t1334158+ZFRETPnj1j3333zc2YALCrmzlzZkREHHPMMdtM+dxc9T7ssMOa/ToY5bG56n3QQQelMiV8c/99+vSJ3Xffvez9A2RVZpPv008/vXQ+bdq0Jts+8MADpfPhw4fnakwA2NU1Na3clPP2l+aU84hNMx3S7B92RY1JMRMHTcvsgmtDhgyJXr16xYIFC2L69Okxc+bMOOaYY7Zp19jYGN/+9rdLty+88MJcjQkAu7otK9/vJfluf5uT77lz58aIESMiSTZ9jzNJkq2Olvxse23eeOONiJB8A7uezCbf1dXVcc0118RnP/vZiIj41Kc+FY8//nj07Nlzq3Zf+MIX4uWXX46IiBNOOCFOO+207fZ35513xiWXXBIRm5Ls6dOnpz4mANC0devWlZK9pirfxx57bLvGtSu79NJL4/nnn4/FixeXfjflds0118Q555yTSt+wK9q04FplFzyr9Ph5kNnkOyJi9OjRcd9998UjjzwSr732WgwcODBGjx4ddXV1sXTp0pg0aVI89dRTEbFptfHbbrstl2MCwK7qtddeiw0bNsT73ve+OOigg7a6z2JrlXHEEUfE17/+9fjTn/4UGzZsiEKhUPou/ubzHf2sJW0KhUKcdNJJsd9++1XmCQJUSKaT79122y1+9rOfxUUXXRRTp06NBQsWxA033LBNuwMOOCDuvffeOOKII3I5JgDsqjZXtptbbK1r167tHtuu7NRTT610CAAdTqaT74iImpqamDJlSkyePDl++MMfRkNDQyxcuDBqamqif//+cd5558WYMWOie/fuuR4TAHZFm7/vbbE1gNbbtM925WOgaZlPvjcbMWJEjBgxotWPHzlyZIwcObJdxwQAmrZl5XtH9/m+NwAdQWa3GgMAOrYNGzaUtp3aXnX7hRde2OF9AJA3ual8AwAdy+uvvx7r1q2L2tra+Ju/+Zut7ps/f37Mnz/fYmsALdCYJNGYVHa18UqPnwcq3wBARWz+vvfRRx8dVVVb/y+JxdYA6Ggk3wBARRx00EHxwQ9+MDZs2LDNfb7vDUBHY9o5AFAR++67bzz//PORJEn88pe/jDPPPLN039y5c+Okk06Kk08+uYIRAuRDMZIoRmWnfVd6/DxQ+QYAKuLII4+Myy67LDp16hTf//73Y+XKlRERkSRJTJ06NZ588sk44ogjKhwlAJSH5BsAqJgbbrghjj322Jg8eXJ87nOfixUrVsScOXNi0aJFsfvuu1tsDaAFipFEY4UPle/mSb4BgIrp0qVLfPnLX47ddtstHnjggRgyZEiceOKJERExcODA6Ny5c4UjBIDykHwDABX10Y9+NH7/+99Ht27domvXrvGnP/0phg0bFmPGjKl0aABQNhZcAwAq7qCDDorZs2fHokWL4rnnnotDDjkkDjvssEqHBZALFlzLB8k3AJAZ++67b5x11lmVDgMAys60cwAAAEiZyjcAAECONSZJNCaVnfZd6fHzQOUbAAAAUqbyDQAAkGPFvx6VjoGmqXwDAABAyiTfAAAAkDLTzgEAAHKsMZJorPA+25UePw9UvgEAACBlkm8AAABImWnnAAAAOdaYbDoqHQNNU/kGAACAlKl8AwAA5Jh9vvNB5RsAAABSJvkGAACAlEm+AQAAcqwYhWis8FGMQkRE1NfXR11dXYwfP77Cr0r2+M43AAAAZdHQ0BC1tbWVDiOTVL4BAAAgZSrfAAAAOVZMNh2VjoGmqXwDAABAyiTfAAAAkDLTzgEAAHJs84rjlY6Bpql8AwAAQMpUvgEAAHJM5TsfVL4BAAAgZZJvAAAASJlp5wAAADlWTApRTCo77bvS4+eByjcAAACkTPINAAAAKTPtHAAAIMesdp4PKt8AAACQMpVvAACAHGuMqmiscF21saKj54PKNwAAAKRM8g0AAAApM+0cAAAgx5IM7POd2Oe7WSrfAAAAkDLJNwAAAKTMtHMAAIAcs893Pqh8AwAAQMok3wAAAJAy084BAAByrDGpisaksnXVxqSiw+eCyjcAAACkTOUbAAAgx4pRiGKF66rFUPpujso3AAAApEzyDQAAACkz7RwAACDH7POdDyrfAAAAkDLJNwAAAKTMtHMAAIAcy8Y+31Y7b47KNwAAAKRM5RsAACDHNu3zXdkFzyo9fh6ofAMAAEDKJN8AAACQMtPOAQAAcqwYVdFY4bpqMSy41hyVbwAAAEiZ5BsAAABSZto5AABAjtnnOx9UvgEAACBlKt8AAAA5VoyqKFpwLfNUvgEAACBlkm8AAABImWnnAAAAOdaYFKIxKVQ8Bpqm8g0AAAApk3wDAABAyiTfAAAAOdYYVZk4OpINGzbEww8/HJdeemn87d/+bXTt2jU6d+4cBx98cIwdOzbmzp270336zjcAAABs4Ve/+lWcdtppERHRp0+fOPXUUyMi4vnnn4/vfve78aMf/SgefPDBOP7441vcZ8f6eAIAAADaqKqqKj7+8Y/HM888E//zP/8T9913X9x3333xhz/8IUaOHBkrV66Mv//7v48NGza0vM8U4wUAACBlxaQqE0dHMmzYsPjpT3+6TWW7c+fO8d3vfje6d+8ec+fOjWeeeabFfXasVwgAAABS1KVLlzj00EMjIuJPf/pTix8n+QYAAMixSi+01tYF1xobG+M3v/lN3HnnnfG5z30ujj/++Nhzzz2jUChEoVCIkSNHtqrf+++/P84///zo27dvdO7cOXr27Bkf+tCH4pvf/GasXLmyTfHOmTMnIiJ69erV4sdZcA0AAICKueCCC+LnP/952fpbvXp1XHzxxXH//fdv9fNFixbFokWL4tlnn41bbrklfvKTn8TgwYN3uv+77747Fi1aFPvuu2986EMfavHjVL4BAAComMbGxq1u77333nHIIYe0uq/zzz+/lHjvt99+cfXVV8c999wT3/nOd+KEE06IiIh58+bF8OHD44033tip/ufMmROf//znIyLixhtvjE6dOrX4sSrfAAAAOVaMiMakUPEYWuu4446Lww8/PAYNGhSDBg2Kfv36xZ133hmXXHLJTvd1++23x4MPPhgREXV1dfH444/HfvvtV7p/7Nixcfnll8fNN98cy5YtizFjxsSMGTNa1PfKlStjxIgRsXTp0jj//PNj9OjROxWb5BsAAICKueqqq8rST2NjY1x33XWl23ffffdWifdmX//61+Oxxx6Ll19+OZ588sl4+OGHS/t478jatWvj7LPPjldffTU+8pGPxN13373T8Zl2DgAAQO7NmDEj5s+fHxERQ4YMiWOOOWa77aqrq+PSSy8t3Z40aVKT/W7YsCH+7u/+Ln71q1/F4MGDY/LkyTs13XwzlW8AAIAcK0ZVFCtcV630+BER06ZNK50PHz68ybZnnHHGdh/3XsViMT75yU/GAw88EAMHDowHHnggunbt2qr4Kv8KAQAAQBvNmjWrdF5fX99k2169ekWfPn0iIuLdd9+NRYsWbdMmSZIYPXp0/OQnP4kBAwbEww8/HO973/taHZ/KNwAAQI41JlXRmFS2rlrp8SMi3nzzzdJ5v379mm3fr1+/mDdvXumx++6771b3f/7zn4877rgj+vXrF4899lj07NmzTfFJvgEAACiLlStXbnW7U6dOrfp+dGssX768dL7PPvs0275Hjx7bfWxExOTJk+M//uM/IiKib9++8cUvfnG7fZxzzjlxzjnntCg+yTcAAABlsXkq92Zf/vKX49prr22XsVevXl0679y5c7Ptu3TpUjpftWrVVvctW7asdP7EE0/ssI++fftKvgEAAHYFxShEMSq9z/em8efNmxe1tbWln7dX1bvcRo4cGSNHjixrn5JvAAAAyqK2tnar5Ls9devWrVSxXrt2bXTr1q3J9mvWrCmd19TUpBpbhNXOAQAA6AD22muv0vnixYubbb9kyZLtPjYtkm8AAIAc27zaeaWPShswYEDpfPbs2c2237LNlo9NS+VfIQAAAGijI488snTe0NDQZNt33323tM1Yz549t9lmLA2SbwAAAHLv9NNPL51PmzatybYPPPBA6Xz48OGpxbQlyTcAAECONUZVJo5KGzJkSPTq1SsiIqZPnx4zZ87cbrvGxsb49re/Xbp94YUXtkt8lX+FAAAAoI2qq6vjmmuuKd3+1Kc+FQsXLtym3Re+8IV4+eWXIyLihBNOiNNOO61d4rPVGAAAQI4Vk0IUkwrv892G8WfPnh0TJ07c6mevvvpq6fyll16Kq6++eqv7hw0bFsOGDdumr9GjR8d9990XjzzySLz22msxcODAGD16dNTV1cXSpUtj0qRJ8dRTT0XEphXOb7vttlbHvbMk3wAAAJRFfX19VFdXx9ixY2Ps2LEteszcuXPjxhtv3OH9r7766lbJeETEbrvttt3ke7fddouf/exncdFFF8XUqVNjwYIFccMNN2zT7oADDoh77703jjjiiBbFWA6SbwAAAMqioaEhamtrKxpDTU1NTJkyJSZPnhw//OEPo6GhIRYuXBg1NTXRv3//OO+882LMmDHRvXv3do1L8g0AAJBjxQwseFZsw/hDhw6NJEnKGM0mI0aMiBEjRpS939ay4BoAAACkTPINAAAAKTPtHAAAIMeKSVUUkwpPO6/w+HngFQIAAICUqXwDAADkWGMUojEqu893pcfPA5VvAAAASJnkGwAAAFIm+QYAAMixzQuuVfqIiKivr4+6uroYP358hV+V7PGdbwAAAMqioaEhamtrKx1GJql8AwAAQMpUvgEAAHKsMSq/2nhjRUfPB5VvAAAASJnkGwAAAFJm2jkAAECObbnaeCVjoGmZf4Xmz58f1157bQwaNCh69OgRe+65Z/Tv3z9GjhwZM2bMKOtYS5YsiYcffji++tWvxt/93d/FQQcdFIVCoXTMmTOnrOMBAACwa8h05Xvy5MlxySWXxLJly7b6+dtvvx1vv/123HXXXTFmzJgYP358VFdXt2msWbNmxd/+7d+2qQ8AAID21phURWOFK8+VHj8PMpt8P/HEE3HBBRfE+vXrIyLizDPPjLPPPju6du0aM2fOjIkTJ8aKFSvitttui0KhEBMmTGjTeI2NW6/PV11dHYcddli8/fbbsWbNmjb1DQAAwK4tk8n3unXrYtSoUaXE+5Zbbolx48aV7r/44otjzJgxMWTIkFiwYEHceuutcf7558ewYcNaPWZNTU186lOfikGDBsWxxx4bRx11VOy5557Rt2/fmDt3bpufEwAAALuuTCbfd9xxR+n71WedddZWifdmhx56aIwfPz7+7u/+LiIirr766njmmWdaPWb//v3jrrvuavXjAQAAKiGJQhQrvM93UuHx8yCTE/N//OMfl84vu+yyHbY755xzom/fvhER8eyzz6pQAwAAkEmZS75XrVoVTz31VERsmgp+0kkn7bBtVVVVnH766aXb06ZNSz0+AAAAtq++vj7q6upi/PjxlQ4lczI37fz111+PYrEYERFHH310s6uY19fXx6233hoRm1YsBwAA2JVkabXzhoaGqK2trWgsWZW5yvebb75ZOu/Xr1+z7bdss+VjAQAAICsyV/levnx56XyfffZptn2PHj22+9gsWbduXaxbt650e+XKle0ybnHBIe0yzq7ofzaurnQIERGxX3WnsvRz+M+2XdRwZxWKbV9ko7CxzV1skmRjwY+qDZWOoLwKSaUj6Lj6/8fv2t5Jzx7Nt2lOoTx/O0mZ+mmrqj+XZ6vQjXP+p+2dJG3/A6o6qq7tcUR2fj9lKwFl5fmU7e+nLN20XVVWAol45JkvVTqEzCsmhShW+OKp9Ph5kLnK9+rV/5vUdO7cudn2Xbp0KZ2vWrUqlZja6qabboru3buXjj59+lQ6JAAAANpRq5LvoUOHRqFQKMux5crmHdWVV14ZK1asKB3z5s2rdEgAAAC0o8xNO+/WrVvpfO3atc22X7Pmf6eU1dTUpBJTW3Xq1Ck6dSrP9GAAAIAtNUZVNFZ4UnOlx8+DViXfH//4x+Ooo44qSwADBgzY6vZee+1VOl+8eHGzj1+yZMl2HwsAAABZ0arke9y4ti/OtCNbJuOzZ89utv2Wbd6byAMAAEAWZG7aeV1dXVRVVUWxWIyXXnopGhsbm9zru6GhoXT+gQ98oD1CBAAAyAyrnedD5pLvmpqaOOGEE+LJJ5+MVatWxVNPPRVDhgzZbttisRgPPfRQ6fYZZ5zRXmECQNkk69a3uQ//y7MdGxvL008ZtgnrcHy1E2CnZfKt88ILLyyd33zzzTts94tf/KI07Xzw4MHRt2/ftEMDAADIlGJUZeKgaZl8hUaNGhUHHnhgRERMmTIlxo8fv02bt956K8aOHVu6fcMNN+ywv759+5a2Nps+fXrZ4wUAAICmZG7aeURE586dY+LEiTF8+PDYsGFDjBs3Lh588ME4++yzo2vXrjFz5sy4/fbbY8WKFRERMXr06DjllFPaPO7EiRO3WeRt+fLlpfObb745unfvvtX9X/nKV9o8LgAAAB1bJpPviIhTTjkl7r333hg1alQsX748pk6dGlOnTt2m3ejRo2PChAllGfPuu++OX/3qVzu8/zvf+c42P5N8AwAAldSYFKKxwguebR6/vr4+qqurY+zYsVvNVCbDyXdExLnnnhuDBw+OCRMmxJQpU2LOnDmxdu3a6N27d5x44onxmc98ZoeLsQEAANC+Ghoaora2ttJhZFKmk++IiN69e8f1118f119/fav7mDNnTova+T44AAAAach88g3s2GFTyjOVpxyTlApl2tEHdkXJeluNpaJYLE8/Ba8utFbi76dd2Oc7HzK52jkAAAB0JJJvAAAASJlp5wAAADmWJFVRTCpbV00qPH4eeIUAAAAgZSrfAAAAOdYYhWis8NKblR4/D1S+AQAAIGUq3+xSGpPybDvTmLS9j5qqDH06mJWtIbISR0RUbax0BNlTjl9PoQx/Ox1RObYa63DKUR4o11Zj5VBQ78g022EB7UDyDQAAkGPFpPL7bBd9wN4sH8MCAABAyiTfAAAAkDLTzgEAAHKsmIF9vis9fh54hQAAACBlKt8AAAA5VoxCFCu8z3alx88DyTe7lNXJukqHALnV0bYJS6rb3kehse19RERE0sFe3IxIyrXVmG3CAFqsvr4+qqurY+zYsTF27NhKh5Mpkm8AAADKoqGhIWpraysdRiZJvgEAAHKsMSlEY4X3+a70+HlgHhUAAACkTPINAAAAKTPtHAAAIMfs850PXiEAAABImco3u5RVxXLtC5QRdieCVivbNmFkV7E8b5KFqrYvIlT4wKFliASAPJN8AwAA5FgxClGs8GrjxbDaeXNMOwcAAICUqXwDAADkWBKFileeE5XvZql8AwAAQMok3wAAAJAy084BAAByrJhkYMG1Co+fB5JvdinFjPXTVoWN3uRS08G2cSt0sOeTFf1/tLgs/TQWyvC3XI4+OpoOtr1k4ncMkGumnQMAAEDKVL4BAAByrJhURTGpbF210uPngVcIAAAAUqbyDQAAkGMWXMsHlW8AAABImeQbAAAAUmbaOVRITdUelQ4BaKuN5dnKqvrwQ8rST0dSaCzD/niNZdpqrKBWkQpbp6Wnymu7qylGIYpR4Wnnfx2/vr4+qqurY+zYsTF27NiKxpQ1km8AAADKoqGhIWpraysdRib5KBcAAABSpvINAACQY1Y7zweVbwAAAEiZyjcAAECOqXzng8o3AAAApEzlG1ohM59alWEnnoiIQpn6gV1NYe36svST7O6f420Ui23uImlsex8AUC7+tQcAAMgx087zITMFPAAAAOioJN8AAACQMtPOAQAAcsy083xQ+QYAAICUSb4BAAAgZaads0tZXizPJV9T2FiWfjoU25WxC0rWl2ersYg9y9RP2ySFDE0ZLMM2YeX7/QBkWxIRxajse7j/FWyeyjcAAACkTOUbAAAgxyy4lg8q3wAAAJAyyTcAAACkzLRzAACAHDPtPB9UvgEAACBlKt8A0FrrN1Q6go6r2PatxsqmSjUHgLaTfAMAAOSYaef5YNo5AAAApEzlGwAAIMdUvvNB5RsAAABSJvkGAACgLOrr66Ouri7Gjx9f6VAyx7RzcqMxydDKt2XQqbB7pUPosKo2VjoCdhXJunVl6cdEvW0VNjZWOoSOS+klFWbcUklJUoikwhfh5vEbGhqitra2orFklbdfAAAASJnkGwAAAFJm2jkAAECOFaMQxQp/ianS4+eByjcAAACkTPINAAAAKTPtHAAAIMeKSSGKFV7tvNLj54Hkm9xYnZRjS5/yvCnUVLW9n373/1Ob+/AWB5WVbCjPvnYd7m+5HPPqbDUGQAcj+QYAAMixLO3zzY75zjcAAACkTPINAAAAKTPtHAAAIMcsuJYPKt8AAACQMsk3AAAApMy0c3JjRbEc2850sEu+XNN7kvJ0QzoKfj/sipK2X/iFQpneIw/7m/L0A5ASq53ng8o3AAAApKyDlQEBAAB2LUkGFlxT+W6eyjcAAACkTPINAAAAKTPtHAAAIMeSKMs6lW2OgaapfAMAAEDKVL6BjsdHrwC7jnJtKQeQMsk3AABAjhWjEIWo7AdRxQqPnwemnQMAAEDKVL4BAAByLEkKFd9nu9Lj54HKNwAAAKRM8g0AAAApM+0cAAAgx4pJIQoVnvZdNO28WZJvcmN5MTuXa03VHm3vxHZYUFlZ+hu0VdK2GhsrHUFZJX7H5IxrFsrPtHMAAABIWXZKiQAAAOy0JNl0VDoGmqbyDQAAACmTfAMAAEDKTDsHAADIsSQpRFLh1cYrPX4eqHwDAABAylS+oUIKG306CJXU/4cL297JIX3b3gfblWzcWOkQAHJD5TsfVL4BAAAgZZJvAAAAyqK+vj7q6upi/PjxlQ4lc0w7BwAAyLFiUohChad9F/86fkNDQ9TW1lY0lqxS+QYAAICUSb4BAAAgZaadAwAA5FiSbDoqHQNNk3yzS+laKNfWNdVt76IMb1CFcr3JlaMf20uQM4X1G9rcR7JbGd4LyiQpdLC/wXJsNVZlgl9qOtr1liVVXlvoqCTfAAAAObap8l3pfb4rOnwu+EgYAAAAUib5BgAAgJSZdg4AAJBjSVLIwLRz6xU0R+UbAAAAUib5BgAAgJSZdk67aEyKlQ4hIsr3aVOnwu5l6gmomLXr2t7Hnp3b3kcHVNjY9vf8pAxbwQHsKpIoz86xbY2Bpql8AwAAQMok3wAAAJAy084BAAByzGrn+ZD5yvf8+fPj2muvjUGDBkWPHj1izz33jP79+8fIkSNjxowZZR3r1VdfjW9961tx7rnnxiGHHBJdu3aNPfbYI/bbb7/48Ic/HDfeeGPMnz+/rGMCAADQ8WW68j158uS45JJLYtmyZVv9/O23346333477rrrrhgzZkyMHz8+qqurWz3O8uXL47jjjou33npru/cvXLgwFi5cGNOnT4+vfvWr8Y1vfCPGjh3b6vEAAADKxopruZDZ5PuJJ56ICy64INavXx8REWeeeWacffbZ0bVr15g5c2ZMnDgxVqxYEbfddlsUCoWYMGFCq8dau3ZtKfGurq6Ok046KU466aT4m7/5m+jatWvMnTs3fvrTn8bzzz8ff/nLX2LcuHGxZs2auPzyy8vyXAEAAOjYMpl8r1u3LkaNGlVKvG+55ZYYN25c6f6LL744xowZE0OGDIkFCxbErbfeGueff34MGzas1WP26NEj/s//+T8xatSo6N279zb3X3755fG1r30trrzyyoiI+OIXvxjnnHNOHHzwwa0ec1eyOinDlj6Rne+RHPPCJyodQodUtbHSEbArSf6ypu2d7N297X1kSbm+jLYhG9tLdjiZ/7JgfvmqKtAeMvk2fscdd8ScOXMiIuKss87aKvHe7NBDD43x48eXbl999dWtHq9Hjx4xZ86c+OIXv7jdxHuzL3zhC3HOOedERMT69evjRz/6UavHBAAAKIu/LrhWycOnWM3LZPL94x//uHR+2WWX7bDdOeecE3379o2IiGeffTbmzp3bqvF233336NatW4vafuIT/1vxfPXVV1s1HgAAALuWzCXfq1atiqeeeioiImpqauKkk07aYduqqqo4/fTTS7enTZuWeny1tbWl8zVryjBlEQAAgA4vc8n366+/HsXipu+KHX300c2uYl5fX186nzVrVqqxvXeMgw46KPXxAAAAmpIk2ThoWuaS7zfffLN03q9fv2bbb9lmy8emYcOGDTFx4sTS7TPPPDPV8QAAAOgYMrfa+fLly0vn++yzT7Pte/Tosd3HpuGmm24qbUl21FFHtTj5XrduXaxb97+rfa9cuTKV+AAAgF1PadGzCsdA0zKXfK9evbp03rlz52bbd+nSpXS+atWqVGKKiPjlL38Z1113XURsWqDte9/7XlRVtWziwE033VR67K5qRbGxDL1k53JdNr+2+UbNyNLbU8E0IXZByV+3s2yLLP0dZ0rRVmO0QMFf0C7BrxlKWjXtfOjQoVEoFMpybLmyeVa98MIL8fd///el76LffPPNW33XvDlXXnllrFixonTMmzcvrVABAADIoOyUEv9qyy2/1q5d22z7LVccr6mpKXs8r776apx22mmlqvqXvvSl+NznPrdTfXTq1Ck6depU9tgAAAAiC/tsV3r8HGhV8v3xj388jjrqqLIEMGDAgK1u77XXXqXzxYsXN/v4JUuWbPex5TBr1qz4yEc+EkuXLo2ITRXs66+/vqxjAAAA0PG1KvkeN25cueMo2TIZnz17drPtt2zz3kS+LTYn3ps/ALjiiiviq1/9atn6BwAAYNeRuWnndXV1UVVVFcViMV566aVobGxscq/vhoaG0vkHPvCBssSwOfFetGhRRERcfvnl8bWvfa0sfQMAAJRTFvbZrvT4eZC5fb5ramrihBNOiIhNq5c/9dRTO2xbLBbjoYceKt0+44wz2jz+exPvyy67LL75zW+2uV8AAAB2XZmrfEdEXHjhhfHkk09GxKaVxYcMGbLddr/4xS9K084HDx4cffv2bdO4r7322laJ9//5P/8nbr755jb1ySbLi22/1DYkbf+sqKa6TAtBZGVBiXJ9wuiTSvImK9esrZK2q9DY9q3GsvIrjohI/J4BKIPMVb4jIkaNGhUHHnhgRERMmTIlxo8fv02bt956K8aOHVu6fcMNN+ywv759+5a2Nps+ffp227z++usxbNiwrRLv//t//28bngUAAEA7SDJy0KRMVr47d+4cEydOjOHDh8eGDRti3Lhx8eCDD8bZZ58dXbt2jZkzZ8btt98eK1asiIiI0aNHxymnnNLq8f74xz/GsGHDYuHChRERcfTRR8fJJ58cv/jFL5p83J577hmnnnpqq8cFAABg15DJ5Dsi4pRTTol77703Ro0aFcuXL4+pU6fG1KlTt2k3evTomDBhQpvG+v3vfx/v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29zH2vld29xHobFM+3eUYUefQhn6KNtWYxl5FzBdaQcy8rqUY6uxAx5cUoZIIpJybP2UpW8PleH5FNasb3MfyR/nt7mPckkO71fpEP5XVrYay0ocEZGUI5SqLD2f7MSSma3GMvSaPPrkF1Mfo73+/7zcNsd96Oe/GtWdOlc0lsZ1a+N3N1+Vu9ewPWXpfz1K7rjjjlLifdZZZ22TeEdEHHrooVslvldffXWbxuzTp0+TiXdERI8ePbaqsE+ZMqVNYwIAALBryGTy/eMf/7h0ftlll+2w3TnnnBN9+/aNiIhnn3025s6dm3ZoccQRR5TON1fdAQAAoCmZS75XrVoVTz31VERE1NTUxEknnbTDtlVVVXH66aeXbk+bNi31+H7/+9+Xznv16pX6eAAAAE1KMnLQpMwl36+//noUi5u+DHv00Uc3u4p5fX196XzWrFmpxrZ69er43Oc+V7r98Y+3/XvMAAAAdHyZW+38zTffLJ3369f8YitbttnysW2xcOHCeOaZZyIiolgsxooVK+LVV1+NH//4x6Wp5oMGDYprr722LOMBAAC0ln2+8yFzyffy5ctL5/vss0+z7Xv06LHdx7bFzJkz49xzz93uffvuu29ccsklcd1110Xnzi1bUXDdunWxbt260u2VK1eWJU4AAADyIXPJ9+rVq0vnLUluu3TpUjpftWpVKjFt6eSTT46TTz65xYl3RMRNN90U1113XYpRbd9H+/223cfckbP+ptIRAJnwzUoHAABQGa36zvfQoUOjUCiU5dhyZfOsOP300yNJkkiSJDZu3Bjz58+PX/ziF/GRj3wkfvazn8XHPvaxuOiii+Ivf/lLi/q78sorY8WKFaVj3rx5KT8DAABgl1HphdYsuNYimVtwrVu3bqXztWvXNtt+zZo1pfOampqyx1NdXR29evWKESNGxKOPPhpXXnllRERMmjQp/vEf/7FFfXTq1Clqa2u3OgAAANh1tGra+cc//vE46qijyhLAgAEDtrq91157lc4XL17c7OOXLFmy3cem5YYbboj/9//+X7z11lsxadKkuOaaa+Kwww5LfVwAAADyq1XJ97hx48odR8mWyfjs2bObbb9lm/cm8mmorq6OU089Nd56662IiJg+fbrkGwAAqJwsTPuu9Pg5kLlp53V1dVFVtSmsl156KRobG5ts39DQUDr/wAc+kGpsm205vX3ZsmXtMiYAAAD5lbnku6amJk444YSI2LR6+VNPPbXDtsViMR566KHS7TPOOCP1+CKiVPWO2LT1GAAAADQlc8l3RMSFF15YOr/55pt32O4Xv/hFadr54MGDo2/fvmmHFv/zP/8T06ZNK93e/EEBAABAJRSSbBw0LZPJ96hRo+LAAw+MiIgpU6bE+PHjt2nz1ltvxdixY0u3b7jhhh3217dv39LWZtOnT9/m/gULFsR1110XS5cubTKu3/3udzF8+PDSFmMf/vCH4/DDD2/JUwIAAGAX1qoF19LWuXPnmDhxYgwfPjw2bNgQ48aNiwcffDDOPvvs6Nq1a8ycOTNuv/32WLFiRUREjB49Ok455ZRWj7d27dq49tpr4ytf+UoMHTo0jjvuuOjfv3/U1tbG+vXr449//GM8+eST8dBDD8WGDRsiIuL9739/3H777WV5vgAAAK1mwbVcyGTyHRFxyimnxL333hujRo2K5cuXx9SpU2Pq1KnbtBs9enRMmDChLGNu3LgxHn300Xj00UebbHfqqafG9773vTjooIPKMi4AAEBHUF9fH9XV1TF27NitZiqT4eQ7IuLcc8+NwYMHx4QJE2LKlCkxZ86cWLt2bfTu3TtOPPHE+MxnPhNDhgxp8zh9+/aNV155JR599NH49a9/Ha+//nr88Y9/jFWrVsXuu+8e3bt3j0MOOSSOO+64+MQnPhHHHXdcGZ4dAABAx9LQ0BC1tbWVDiOTCkmSmCDQzlauXBndu3ePFStWuDABAKDC8vr/55vjPnzcV6O6U+eKxtK4bm288Z2rcvcatqdMLrgGAAAAHYnkGwAAAFKW6e98AwAA0AyrneeCyjcAAACkTOUbAAAgz1S+c0HlGwAAAFIm+QYAAICUmXYOAACQY4W/HpWOgaapfAMAAEDKJN8AAACQMtPOAQAA8sxq57mg8g0AAAApk3wDAABAykw7BwAAyLFCsumodAw0TeUbAAAAUqbyDQAAkGcWXMsFlW8AAABImeQbAAAAUmbaOQAAQN6Z9p15Kt8AAACQMsk3AAAApMy0cwAAgByzz3c+qHwDAABAylS+AQAA8sw+37mg8g0AAAApk3wDAABAykw7BwAAyDELruWDyjcAAACkTPINAAAAKTPtHAAAIM+sdp4LKt8AAACQMpVvAACAHLPgWj6ofAMAAEDKJN8AAACQMsk3AABAniUZOSKivr4+6urqYvz48ak+5TzynW8AAADKoqGhIWpraysdRiapfAMAAEDKVL4BAADyzD7fuaDyDQAAACmTfAMAAEDKTDsHAADIsUKy6ah0DDRN5RsAAABSpvINAACQZxZcywWVbwAAAEiZ5BsAAABSZto5AABAjhWSJApJZed9V3r8PFD5BgAAgJRJvgEAACBlpp0DAADkmdXOc0HlGwAAAFKm8g0AAJBjhWTTUekYaJrKNwAAAKRM8g0AAAApM+0cAAAgzyy4lgsq3wAAAJAyyTcAAACkzLRzAACAHLPaeT6ofAMAAEDKJN8AAACQMtPOAQAA8sxq57mg8g0AAAApU/kGAADIMQuu5YPKNwAAAKRM8g0AAAApM+0cAAAgzyy4lgsq3wAAAJAyyTcAAACkzLRzAACAnLPaePapfAMAAEDKVL4BAADyLEk2HZWOgSapfAMAAEDKJN8AAACQMtPOAQAAcqyQVH7BtUqPnwcq3wAAAJAyyTcAAACkzLRzAACAPEv+elQ6Bpqk8g0AAAApU/kGAADIsUJx01HpGGiayjcAAACkTPINAAAAKTPtHAAAIM8suJYLKt8AAACQMsk3AAAApMy0cwAAgBwrJJuOSsdA01S+AQAAYDvWr18fN910UxxxxBHRpUuX2HfffeO8886LmTNn7nRfkm8AAAB4j/Xr18dpp50WV111VSxevDjOOuusOOyww+K+++6LwYMHx0MPPbRT/Zl2DgAAkGdJsumodAwdzNe//vWYPn161NfXx6OPPhq1tbURETFp0qS46KKL4pOf/GS8/fbbUVNT06L+VL4BAABgCxs3boz//M//jIiI7373u6XEOyLi7//+72P48OGxePHiuOOOO1rcp+QbAAAgxzYvuFbpoyN5+umnY+nSpdGvX7849thjt7n/E5/4RERETJ48ucV9Sr4BAAComMbGxvjNb34Td955Z3zuc5+L448/Pvbcc88oFApRKBRi5MiRrer3/vvvj/PPPz/69u0bnTt3jp49e8aHPvSh+OY3vxkrV65s8rEvv/xyREQMGjRou/cfc8wxERHxyiuvtDge3/kGAACgYi644IL4+c9/Xrb+Vq9eHRdffHHcf//9W/180aJFsWjRonj22WfjlltuiZ/85CcxePDg7fYxd+7ciIg44IADtnv/5p8vXbo0Vq9eHd26dWs2LpVvAACAPEsycrRSY2PjVrf33nvvOOSQQ1rd1/nnn19KvPfbb7+4+uqr45577onvfOc7ccIJJ0RExLx582L48OHxxhtvbLef1atXR0RE165dt3v/lsn2qlWrWhSbyjcAAAAVc9xxx8Xhhx8egwYNikGDBkW/fv3izjvvjEsuuWSn+7r99tvjwQcfjIiIurq6ePzxx2O//fYr3T927Ni4/PLL4+abb45ly5bFmDFjYsaMGWV7Lk2RfAMAAFAxV111VVn6aWxsjOuuu650++67794q8d7s61//ejz22GPx8ssvx5NPPhkPP/xwnHrqqVu12VzZ/vOf/7zdsTZXxiPCVmMAAAC7gkqvcp6V1c5nzJgR8+fPj4iIIUOGlBZFe6/q6uq49NJLS7cnTZq0TZuDDjooIiL++Mc/brePzT/fe++9W/R97wjJNwAAAB3AtGnTSufDhw9vsu0ZZ5yx3cdtdtRRR0VExIsvvrjdx8+cOTMiIgYOHNji+CTfAAAAeZYk2TgqbNasWaXz+vr6Jtv26tUr+vTpExER7777bixatGir+0844YTYe++9Y/bs2fHCCy9s8/h77703IiJGjBjR4vgk3wAAAOTem2++WTrv169fs+23bLPlYyMidtttt/j//r//LyIiPvvZz261L/ikSZPigQceiH322SdGjRrV4vgsuAYAAEBZbJmkRkR06tQpOnXq1C5jL1++vHS+zz77NNu+R48e233sZldccUU8/vjjMX369DjkkENiyJAhsWDBgnjyySdj9913j7vvvrvFi61FqHwDAADkWqUXWttywbU+ffpE9+7dS8dNN93Ubq/DliuQd+7cudn2Xbp0KZ1vb6/uPfbYIx566KG48cYbo0ePHnH//ffH66+/HiNGjIjnnnsuTj/99J2KT+UbAACAspg3b17U1taWbrdX1Tste+yxR1x11VVl2Q5N8g0AAEBZ1NbWbpV8t6du3brFsmXLIiJi7dq1zW4BtmbNmtL5zkwfby3TzgEAAPIsychRYXvttVfpfPHixc22X7JkyXYfmxbJNwAAALk3YMCA0vns2bObbb9lmy0fmxbJNwAAALl35JFHls4bGhqabPvuu+/GvHnzIiKiZ8+ese+++6YaW4TkGwAAINcqvcr5lqudV9KWq49PmzatybYPPPBA6Xz48OGpxbQlyTcAAAC5N2TIkOjVq1dEREyfPj1mzpy53XaNjY3x7W9/u3T7wgsvbJf4JN8AAAB5VkyycVRYdXV1XHPNNaXbn/rUp2LhwoXbtPvCF74QL7/8ckREnHDCCXHaaae1S3y2GgMAAKAs6uvro7q6OsaOHRtjx45t0WNmz54dEydO3Opnr776aun8pZdeiquvvnqr+4cNGxbDhg3bpq/Ro0fHfffdF4888ki89tprMXDgwBg9enTU1dXF0qVLY9KkSfHUU09FxKYVzm+77badfYqtJvkGAACgLBoaGnZ6n++5c+fGjTfeuMP7X3311a2S8YiI3XbbbbvJ92677RY/+9nP4qKLLoqpU6fGggUL4oYbbtim3QEHHBD33ntvHHHEETsVa1tIvgEAAPIsC/tsV3r8LdTU1MSUKVNi8uTJ8cMf/jAaGhpi4cKFUVNTE/3794/zzjsvxowZE927d2/XuCTfAAAAVMzQoUMjScqfvY8YMSJGjBhR9n5by4JrAAAAkDKVbwAAgBwrROX32S5UdvhcUPkGAACAlGU++Z4/f35ce+21MWjQoOjRo0fsueee0b9//xg5cmTMmDGjXWL47W9/G126dIlCoVA6AAAAMiFJsnHQpExPO588eXJccsklsWzZsq1+/vbbb8fbb78dd911V4wZMybGjx8f1dXVqcRQLBZj1KhRsXbt2lT6BwAAoOPLbPL9xBNPxAUXXBDr16+PiIgzzzwzzj777OjatWvMnDkzJk6cGCtWrIjbbrstCoVCTJgwIZU4/uu//iueffbZ6Nq1a/z5z39OZQwAAAA6tkxOO1+3bl2MGjWqlHjfcsstMXXq1Pinf/qnuPjii+Pmm2+O559/Pnr16hUREbfeems8/vjjZY/jD3/4Q1x99dUREfGVr3yl7P0DAAC0VSHJxkHTMpl833HHHTFnzpyIiDjrrLNi3Lhx27Q59NBDY/z48aXbm5PkckmSJP7xH/8x/vKXv8Rxxx0Xl156aVn7BwAA6Gjq6+ujrq5uq1yNTTI57fzHP/5x6fyyyy7bYbtzzjkn+vbtG3PmzIlnn3025s6dGwcddFBZYrj11ltj+vTpsfvuu8ftt98eVVWZ/JwCAAAgMxoaGqK2trbSYWRS5jLKVatWxVNPPRURETU1NXHSSSftsG1VVVWcfvrppdvTpk0rSwz/8z//E1dccUVERPzbv/1bHHnkkWXpFwAAoOySjBw0KXPJ9+uvvx7FYjEiIo4++uhmVzGvr68vnc+aNassMfzTP/1TrFq1Kg499NC45pprytInAAAAu67MJd9vvvlm6bxfv37Ntt+yzZaPba0f/OAH8dBDD0WhUIjvf//70alTpzb3CQAAwK4tc9/5Xr58eel8n332abZ9jx49tvvY1vjTn/5U+o756NGj4+STT25TfwAAAGkrJEkUksrO+670+HmQueR79erVpfPOnTs3275Lly6l81WrVrVp7H/5l3+J5cuXx/777x/f+MY32tTXltatWxfr1q0r3V65cmXZ+gYAACD7WjXtfOjQoVEoFMpybLmyeSXdc889cf/990dExHe+853o3r172fq+6aabonv37qWjT58+ZesbAADYxRUzctCkzH3nu1u3bqXztWvXNtt+zZo1pfOamppWjblw4cL413/914iIOPfcc+Pcc89tVT87cuWVV8aKFStKx7x588raPwAAANnWqmnnH//4x+Ooo44qSwADBgzY6vZee+1VOl+8eHGzj1+yZMl2H7szxo0bF4sXL47u3bunshl8p06dLNwGAACwC2tV8j1u3Lhyx1GyZTI+e/bsZttv2ea9iXxLrFixIn76059GRMQRRxwREydObNHjvvKVr5TOR48eHfvtt99Ojw0AANBWFlzLh8wtuFZXVxdVVVVRLBbjpZdeisbGxib3+m5oaCidf+ADH9jp8ZItLpJnnnkmnnnmmRY97ktf+lLp/GMf+5jkGwAAgB3K3He+a2pq4oQTToiITauXP/XUUztsWywW46GHHirdPuOMM1KPDwAAAHZW5pLviIgLL7ywdH7zzTfvsN0vfvGL0rTzwYMHR9++fXd6rL322iuSJGnRsaUtf16u778DAADstCQjR0TU19dHXV1dKmtp5V0mk+9Ro0bFgQceGBERU6ZM2e4v7q233oqxY8eWbt9www077K9v376lrc2mT59e9ngBAADY9LXg119/fatcjU0y953viIjOnTvHxIkTY/jw4bFhw4YYN25cPPjgg3H22WdH165dY+bMmXH77bfHihUrImLTgmennHJKhaMGAACogCTZdFQ6BpqUyeQ7IuKUU06Je++9N0aNGhXLly+PqVOnxtSpU7dpN3r06JgwYUIFIgQAAICWyWzyHRFx7rnnxuDBg2PChAkxZcqUmDNnTqxduzZ69+4dJ554YnzmM5+JIUOGVDpM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NmzYEP/+7/8eP/jBD0o/+9KXvtSSpwMAAMAuLpPTziMiHn300Rg+fHhs2LAhIiI+9rGPxdlnnx1du3aNmTNnxu233x4rVqyIiIjRo0fH9773vR321bdv35g7d25ERDzxxBMxdOjQre5/+eWX4+ijj45OnTrFsGHDor6+Pvr16xc1NTWxevXqmDVrVvzkJz+JefPmlR5z4403xlVXXVXmZw0AAEBHlNnkOyLivvvui1GjRjW5ovjo0aNjwoQJUV1dvcM2LU2+W6K2tjb+4z/+I0aNGtWi9gAAANCqrcbay7nnnhuDBw+OCRMmxJQpU2LOnDmxdu3a6N27d5x44onxmc98ZoeLse2Mww8/PB588MH49a9/Hb/+9a9jzpw5sXjx4li2bFl06tQp9tlnnxg4cGB89KMfjX/4h3+I2traMjy7pr300ktxzz33xKOPPhp//OMfY+XKlbHPPvtE7969Y/DgwTF06NA499xzm/zQoaXuv//+uPvuu6OhoSEWLFgQtbW1cfDBB8e5554bY8aMaZfnS+ulfa00NjbGG2+8ES+88EK8+OKL8cILL8Qrr7wSa9asiYiIT3/603HnnXeW8RmRhrSvk1WrVsXDDz8cTzzxRMycOTPeeuutWL58eXTp0iX233//OO644+Kiiy6K0047LQqFQpmfHeWU9rXS0NAQzz//fDQ0NMRrr70WixYtisWLF8eGDRtir732isMPPzw+/OEPx8iRI+Oggw4q87OjnNrz/1Xea+TIkXHXXXeVbn/5y1+Oa6+9tuzj0HZpXydDhw6NX/3qVy1u3x4LNMMOJWTKihUrkpEjRyaFQiGJiCaPZcuWtWmsVatWJWeffXaTY/Tp0yd59tlny/PkKKv2ulbOO++8Jvv+9Kc/XbbnRPm1x3Vy8803J507d262/4hITjrppGTu3LnlfZKURXu9p3Tt2rVF10qnTp2Sr371q+V7gpRNe/6/yvY88MAD24zz5S9/uezj0DbtdZ0MGTKkRe8pm4/Zs2eX7TnCzsp05XtXs3Tp0jjttNPihRdeiIiI97///XHeeefFwIEDo3v37rFq1ap466234pFHHokXX3yxTWM1NjbG+eefHw8++GBEROy3334xevToqKuri6VLl8akSZPi6aefjnnz5sXw4cPj6aefjsMPP7zNz5HyaO9rZUt777139OjRI95666029Uv62us6+d3vfhdr164tjXHKKafEoEGDomfPnrF27dp47rnn4kc/+lGsXr06nnzyyRg6dGg899xz0bNnz7I8T9quPd9TIiJ69uwZxx13XAwcODD69esX3bt3jw0bNsScOXPil7/8ZTz99NOxbt26uOqqq2LDhg1xzTXXtHlMyqO9r5X3WrlyZYwZMyYiIrp27Rp//vOfyz4GbVep6+S+++5rto1/e6ioSmf//K/TTjut9Knc5z//+WTNmjU7bPvOO+8kGzZsaPVYt956a2msurq6ZMGCBdu0+fznP79VtYrsaM9r5cYbb0y+8IUvJD/96U+Tt99+O0mSJPnBD36g8p0D7XWd/PM//3Ny6qmnJg8//HDS2Ni43TZz5sxJBgwYUIrnkksuadVYpKM931NmzZqVFIvFJtvcddddpWrZbrvtlrzzzjutHo/yas9rZXv+6Z/+qTQz77LLLlP5zqj2vE62rHxD1rlKM2LLZOZf/uVfUh1r48aNSe/evUvjvfjiiztsd9RRR5XaPfTQQ6nGRcu057XSkhgk39nUntfJkiVLWtTu5ZdfLsW05557Jn/+859TjYuWycJ7yvacddZZpbgmTpxY6XBIKn+tPPbYY6UPZaZMmZJ8+ctflnxnUHtfJ5Jv8iST+3zvir7+9a9HRES3bt3ia1/7WqpjzZgxI+bPnx8REUOGDIljjjlmu+2qq6vj0ksvLd2eNGlSqnHRMu15rZBf7Xmd7L333i1qN3DgwBgwYEBERPzlL3+J3//+92mGRQtl9T3liCOOKJ0vWLCggpGwWSWvlb/85S8xevToSJIkPvGJT8THPvaxdh2flsvqewpkgeQ7A55++un47W9/GxERI0aMSH118WnTppXOhw8f3mTbM844Y7uPozLa+1ohn7J8nWwZy+YV86mcLF8rW34406tXrwpGQkTlr5Urr7wy3n777dh7773jv/7rv9p1bFqu0tcJZJ3kOwO23B7hgx/8YERE/PznP4/hw4dHr169olOnTrH//vvHmWeeGT/4wQ9i48aNbRpv1qxZpfP6+vom2/bq1Sv69OkTERHvvvtuLFq0qE1j0zbtfa2QT1m9TtavXx+/+93vSrdtI1V5Wb1WpkyZUlo4qXPnznHmmWe2y7jsWCWvlWeeeSa+853vRETEt771rdhvv/3K1jflVen3lI997GPx/ve/P/bYY4943/veF0cccUSMHj06nnjiibKOA61W6XnvJMm5555b+q7Kvffe2+zWTkceeWRp4avW6Nev305tt3DyySeX2j/55JOtHpe2a+9rZUd85zvbsnKdvNeW180xxxyT+ng0r9LXyq9+9avkvvvuS+67777k3nvvTb71rW8lp556amm83XbbLbnzzjvLNh6tV6lrZc2aNaXFGj/ykY9sdZ/vfGdPJa6Tlm41NmzYsORPf/pTmZ4ptI6txjJg8/evIyKuueaaePPNN2OPPfaIT33qU3HiiSfG7rvvHq+88krcfvvtsXTp0pg1a1Z8+MMfjpkzZ7b4u5ZbWr58eel8n332abZ9jx49tvtY2l97XyvkUxavk0WLFsUVV1xRun311VenMg47p9LXyr//+7/Hr3/9621+XigUYsiQIXHdddfFySef3OZxaLtKXSubx+rSpUvcdttt5XgqpKhS18n73ve++OhHPxrHHntsvP/974/q6up455134rHHHotp06ZFkiTx+OOPx/HHHx/PPfecr7JQOZXO/km22n4nIpL3ve99ycyZM7dpN3/+/KSurq7UbsyYMa0ab/fddy/10ZKtHS666KJS+3vuuadVY1Ie7X2t7IjKd7Zl5TrZbN26dclJJ51UGuecc85JZRx2XqWvlQ9+8IPbrVAdcMAByY033qhKlSGVuFaef/75pLq6OomI5Bvf+MY296t8Z08lrpNnnnkmWbdu3Q7vb2hoSA488MDSWGeccUarx4K28p3vDCgWi1vd/ta3vhVHH330Nu169eoV99xzT+n2nXfeGStXrkw9PrLDtUJLZOk6KRaLMWrUqHjyyScjIqJ///5xxx13lHUMWq/S18pzzz0XyaZtT2P16tXx8ssvx/XXXx+rVq2KL37xi3HkkUfGo48+2uZxaLv2vlbWr18fo0aNisbGxjjmmGPisssu2/mgaXeVeE85/vjjY4899tjh/ccee2w8+OCD0alTp4jYtIBwQ0NDq8aCtpJ8Z0BNTU3pvGvXrvHJT35yh20HDhwYgwcPjoiIdevWxdNPP73T43Xr1q10vnbt2mbbb7ki8Zax0v7a+1ohn7JynSRJEv/8z/8c//3f/x0REQceeGA8+uij8b73va9sY9A2WblWNo8/cODA+NKXvhQvvfRS7L///rFkyZI488wzt1oolMpo72vlK1/5SvzmN7+J6urq+P73vx/V1dU7HzTtLkvvKVs6/PDD4x/+4R9Kt6dOnZraWNAUyXcGbPk/okceeWSTn95FbPoEb7M//OEPOz3eXnvtVTpfvHhxs+2XLFmy3cfS/tr7WiGfsnCdJEkSn/3sZ+P73/9+REQccMAB8fjjj0ffvn3L0j/lkYVrZXv69etX2h94/fr1ceONN6Y2Fi3TntfKK6+8Uvr9X3bZZXHMMcfs1OOpnKy+p0REfPjDHy6dv/HGG6mOBTtiwbUMOOyww+Kxxx6LiIju3bs3237LNq2ZojNgwICYPXt2RETMnj272f8Z3tx282OpnPa+VsinSl8nSZLE2LFj49Zbb42IiPe///3xxBNPRP/+/dvcN+VV6WulKWeccUbpfPr06amORfPa81q58847Y8OGDVFVVRW77757fOUrX9luuxkzZmx1vrndgAED4vzzz9+pMSmPLL+n7LvvvqVzCwhTKZLvDBg4cGDpfMWKFc2237JNS97Y3uvII4+MBx98MCIiGhoatvok8L3efffdmDdvXkRE9OzZc6s3Ltpfe18r5FMlr5PNifeECRMiImL//fePJ554Ig4++OA29Us6svyesuX01WXLlqU6Fs1rz2slSZKI2PT94a9+9asteswTTzxR2st5xIgRku8KyfJ7ypazPc3kpFJMO8+AM844IwqFQkREzJo1K9avX99k+xdeeKF03ppK9Omnn146nzZtWpNtH3jggdL58OHDd3osyqu9rxXyqVLXyXsT7969e8cTTzwRhxxySKv7JF1Zfk956623Suc++K28LF8rZEeWr5PNH860x1iwQ5VbaJ0tDR06tLQFwsSJE3fY7uWXXy61q6mpSf7yl7/s9FgbN25MevXqVernxRdf3GG7o446qtTuwQcf3OmxKL/2vFZ2xFZj2VeJ6+Szn/1sqa9evXolv/3tb1vdF+0nC+8p2zN27NjSeBdccEGqY9EyWbtWbDWWTVm7TpIkSd58882kc+fOpfGee+651MaCpki+M+KZZ55pdk/EBQsWJEcccUSp3Re/+MVt2myZFA0ZMmSH4333u98ttTviiCOSd999d5s2l19+eanNCSec0KbnR/m097WyPZLv7Gvv62TcuHES75xqz2tlwoQJyeOPP54Ui8UdxrNx48bkpptuSgqFQqm/6dOnt/r5UT5Z+PdnS5LvbGrP6+S//uu/kqeffrrJeGbOnJn07du31Nepp57aqucF5eA73xlx/PHHxxVXXBFf//rXY9myZTF48OD49Kc/HSeeeGLsvvvu8fLLL8ftt98eS5cujYhNq0NeffXVrR5v9OjRcd9998UjjzwSr732WgwcODBGjx4ddXV1sXTp0pg0aVI89dRTEbHpezG33XZbWZ4nbdfe18rs2bNj4sSJW/3s1VdfLZ2/9NJL2/Q/bNiwGDZsWKvHpO3a8zq5+uqr4zvf+U5ERBQKhfjXf/3XeOONN5pdTfaYY46JAw88sFVjUj7tea0899xz8S//8i/Rp0+f+OhHPxpHHnlk9OzZM/bYY49Yvnx5/OY3v4nJkyfHnDlzSo+58sorY8iQIeV4qrRRe//7Qz6153Xy+OOPx7/+679G//7945RTTokPfOAD0aNHj6iuro4//elP8dhjj8UDDzxQ2n/8oIMOih/84Adle66w0yqd/bO1q666Kqmuri59Ore947TTTkuWLl263cfvzKfJK1euTD72sY81OdYBBxzQ7CeKVEZ7XStPPPFEk2Ns71CByI72uE6GDBmy09dIRCQ/+MEP0nvi7LT2uFY+/elPt/j66N69e/Ld7343xWdMa7Xn/6s0ReU729rjOhkxYkSL31NOO+205J133knxGUPzVL4z5sYbb4wLLrggJk6cGI888ki88847sWHDhujZs2d86EMfik996lNbbb/SFjU1NTFlypSYPHly/PCHP4yGhoZYuHBh1NTURP/+/eO8886LMWPGWCU7o9rzWiG/XCe0VHtcK9/+9rdjxIgRMWPGjHjppZfiD3/4QyxevDg2bNgQ3bp1i/322y/+9m//Nk477bQ4//zz/fuTUd5XaIn2uE5uvvnmOOuss+LXv/51vPLKK7Fw4cJYvHhxrFu3Lrp37x59+/aN448/Pi6++OL44Ac/WKZnBq1XSJK/7ucAAAAApMJWYwAAAJAyyTcAAACkTPINAAAAKZN8AwAAQMok3wAAAJAyyTcAAACkTPINAAAAKZN8AwAAQMok3wAAAJAyyTcAAACkTPINAAAAKZN8AwAAQMok3wAAAJAyyTcAAACkTPINAAAAKfv/AcjT51nJ9L8AAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import matplotlib\n", "\n", "matplotlib.rcParams.update({'font.size': 22})\n", "plt.figure(figsize = (12, 9))\n", "plt.imshow(conLength.T, origin = 'lower', extent = [rRange[0], rRange[-1], zRange[0], zRange[-1]], norm = matplotlib.colors.LogNorm())\n", "plt.colorbar()\n", "geometry.plotCut(phi, edgecolors = 'k')\n", "plt.axis('equal')\n", "plt.xlim(6.0, 6.5)\n", "plt.ylim(-0.5, 0)" ] }, { "cell_type": "code", "execution_count": null, "id": "e7e9e5aa-0b7e-4891-9205-7f88deca175d", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 5 }